using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ITS.Core.Domain.Projects;

namespace ITS.Services.Projects
{
    public interface IProjectService
    {
        ProjectDescription GetProjectDescriptionByNameInCurrentCulture(string name);

        IQueryable<ProjectDescription> GetProjectDescriptionsByCategoryID(int categoryID);
        IQueryable<ProjectDescription> GetProjectsByCategoryIdInCurrentCulture(int categoryID);

        ProjectDescription GetProjectDescriptionByIdInCurrentCulture(int id);

        IEnumerable<ProjectDescription> GetAllProjectDescriptions();

        IEnumerable<ProjectDescription> GetAllProjectDescriptionsInCurrentCulture();

        IList<ProjectDescription> GetRelatedProjects(int p);

        IList<ProjectCategory> GetAllProjectCategories();

        IList<Project> GetProjectsByCategoryID(int CategoryID);

        Project GetProjectByID(int ProjectID);

        IList<ProjectDescription> GetProjectDescriptionsByProjectID(int ProjectID);

        void Save();

        ProjectDescription GetProjectDescriptionById(int DescriptionID);

        void AddProjectImage(ProjectImage image, int ProjectID);

        ProjectImage GetProjectImageByID(Guid ImageID);

        IList<ProjectImage> GetProjectImagesByProjectID(int ProjectID);

        void DeleleProjectImage(Guid ImageID);

        ProjectDescription GetProjectDescriptionByProjectIdAndLanguageID(int ProjectID, string p);

        void AddProject(Project project);

        void AddProjectDescription(ProjectDescription description);
    }
}
